﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using SMA.GENTEv1;

public partial class _includes__popup_ipHistParamBenefVT : PageBase
{
    private string tipoRegra = "";
    private int idConvencao = 0;
    private int idContrato = 0;
    private int idPrestador = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            if (Request.QueryString["TipoRegra"] != null)
                tipoRegra = Request.QueryString["TipoRegra"].ToString();

            if (Request.QueryString["IdConvencao"] != null)
                idConvencao = int.Parse(Request.QueryString["IdConvencao"].ToString());

            if (Request.QueryString["IdContrato"] != null)
                idContrato = int.Parse(Request.QueryString["IdContrato"].ToString());

            if (Request.QueryString["IdPrestador"] != null)
                idPrestador = int.Parse(Request.QueryString["IdPrestador"].ToString());

            if (!IsPostBack)
            {
                Pesquisar(tipoRegra);
                rgHistParamVT.DataBind();
            }
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    #region Eventos
    protected void btnFechar_Click(object sender, EventArgs e)
    {
        try
        {
            ClientScript.RegisterStartupScript(Page.GetType(), "mykey", "CloseAndRebind('email');", true);
        }
        catch (Exception ex)
        {
            ExibirMensagem(true, ex.Message);
        }
    }

    protected void rgHistParamVT_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        try
        {
            Pesquisar(tipoRegra);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    #endregion

    #region Métodos
    private void Pesquisar(string tipoRegra)
    {
        try
        {
            switch (tipoRegra)
            {
                case "1":
                    string[] campoIdConfigLegal = { "IdConfiguracaoRegraLegal" };
                    rgHistParamVT.MasterTableView.DataKeyNames = campoIdConfigLegal;
                    rgHistParamVT.DataSource = CarregarHistoricoConfigLegal();
                    break;
                case "2":
                    string[] campoIdConfigConvencao = { "IdConfiguracaoRegraConvencao" };
                    rgHistParamVT.MasterTableView.DataKeyNames = campoIdConfigConvencao;
                    rgHistParamVT.DataSource = CarregarHistoricoConfigConvencao();
                    break;
                case "3":
                    string[] campoIdConfigContrato = { "IdConfiguracaoRegraContrato" };
                    rgHistParamVT.MasterTableView.DataKeyNames = campoIdConfigContrato;
                    rgHistParamVT.DataSource = CarregarHistoricoConfigContrato();
                    break;
                case "4":
                    string[] campoIdConfigLiberalidade = { "IdConfiguracaoRegraLiberalidade" };
                    rgHistParamVT.MasterTableView.DataKeyNames = campoIdConfigLiberalidade;
                    rgHistParamVT.DataSource = CarregarHistoricoConfigLiberalidade();
                    break;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private List<ConfiguracaoRegraLegal> CarregarHistoricoConfigLegal()
    {
        try
        {
            List<ConfiguracaoRegraLegal> listConfigLegal = new List<ConfiguracaoRegraLegal>();
            ConfiguracaoRegraLegal configLegal = new ConfiguracaoRegraLegal();

            listConfigLegal = configLegal.SelectHistorico((int)TipoBeneficio.TipoBenef.Vale_Transporte);

            return listConfigLegal;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private List<ConfiguracaoRegraConvencao> CarregarHistoricoConfigConvencao()
    {
        try
        {
            List<ConfiguracaoRegraConvencao> listConfigConvencao = new List<ConfiguracaoRegraConvencao>();
            ConfiguracaoRegraConvencao configConvencao = new ConfiguracaoRegraConvencao();

            listConfigConvencao = configConvencao.SelectHistorico((int)TipoBeneficio.TipoBenef.Vale_Transporte, idConvencao);

            return listConfigConvencao;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private List<ConfiguracaoRegraContrato> CarregarHistoricoConfigContrato()
    {
        try
        {
            List<ConfiguracaoRegraContrato> listConfigContrato = new List<ConfiguracaoRegraContrato>();
            ConfiguracaoRegraContrato configContrato = new ConfiguracaoRegraContrato();

            listConfigContrato = configContrato.SelectHistorico((int)TipoBeneficio.TipoBenef.Vale_Transporte, idContrato);

            return listConfigContrato;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private List<ConfiguracaoRegraLiberalidade> CarregarHistoricoConfigLiberalidade()
    {
        try
        {
            List<ConfiguracaoRegraLiberalidade> listConfigLiberalidade = new List<ConfiguracaoRegraLiberalidade>();
            ConfiguracaoRegraLiberalidade configLiberalidade = new ConfiguracaoRegraLiberalidade();

            listConfigLiberalidade = configLiberalidade.SelectHistorico((int)TipoBeneficio.TipoBenef.Vale_Transporte, idPrestador);

            return listConfigLiberalidade;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void ExibirMensagem(bool _msgErro, string _textoMsg)
    {
        try
        {
            OcultaMsgPagina(false);
            if (_msgErro)
            {
                lblResultado.ForeColor = System.Drawing.Color.Red;
                lblResultado.Text = _textoMsg;
            }
            else
            {
                lblResultado.ForeColor = System.Drawing.Color.Black;
                lblResultado.Text = _textoMsg;
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    private void OcultaMsgPagina(bool oculta)
    {
        trMensagem.Visible = !oculta;
    }
    #endregion
}
